<script>
export default {
    name: "TodoMain",
    props:{
        taskList:Array
    },
    data(){
        return {
            activeId:null
        }

    },
    methods:{
        removeTaskById(id){
            if(window.confirm("您确定要删除该信息吗？")){
                this.$emit("update:taskList",this.taskList.filter(v=>v.id !== id));
            }
        },
        // 根据ID修改选中的数据状态
        upIsCheckedById(id){
            this.$emit("update:TaskList",this.taskList.map(item=>{
                if(item.id === id){
                    item.isChecked = !item.isChecked;
                }
                return item;
            }))
        }
    }
}
</script>

<template>
    <ul class="todo-main">
        <li @mouseenter="activeId=item.id" @mouseleave="activeId=null" v-for="item in taskList" :key="item.id">
            <label>
                <input @change="upIsCheckedById(item.id)" :checked="item.isChecked" type="checkbox"/>
                <span>{{item.title}}</span>
            </label>
            <button @click="removeTaskById(item.id)" v-show="activeId === item.id" class="btn btn-danger">删除</button>
        </li>
    </ul>
</template>

<style scoped lang="less">
/*main*/
.todo-main {
    margin-left: 0px;
    border: 1px solid #ddd;
    border-radius: 2px;
    padding: 0px;
}

/*main*/
.todo-main {
    margin-left: 0px;
    border: 1px solid #ddd;
    border-radius: 2px;
    padding: 0px;
}

.todo-empty {
    height: 40px;
    line-height: 40px;
    border: 1px solid #ddd;
    border-radius: 2px;
    padding-left: 5px;
    margin-top: 10px;
}
/*item*/
li {
    list-style: none;
    height: 36px;
    line-height: 36px;
    padding: 0 5px;
    border-bottom: 1px solid #ddd;
}

li label {
    float: left;
    cursor: pointer;
}

li label li input {
    vertical-align: middle;
    margin-right: 6px;
    position: relative;
    top: -1px;
}

li button {
    float: right;
    // display: none;
    margin-top: 3px;
}

li:before {
    content: initial;
}

li:last-child {
    border-bottom: none;
}

</style>